[INFO] cloning repository https://github.com/Fangpeng2025/chenyi-kernel
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Fangpeng2025/chenyi-kernel" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFangpeng2025%2Fchenyi-kernel", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFangpeng2025%2Fchenyi-kernel'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] eefdbc2635644e4a4f197189dec9dd763ff6b4f6
[INFO] testing Fangpeng2025/chenyi-kernel against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFangpeng2025%2Fchenyi-kernel" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Fangpeng2025/chenyi-kernel
[INFO] finished tweaking git repo https://github.com/Fangpeng2025/chenyi-kernel
[INFO] tweaked toml for git repo https://github.com/Fangpeng2025/chenyi-kernel written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Fangpeng2025/chenyi-kernel on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Fangpeng2025/chenyi-kernel already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rust-embed-utils v8.11.0
[INFO] [stderr]   Downloaded rust-embed-impl v8.11.0
[INFO] [stderr]   Downloaded shellexpand v3.1.2
[INFO] [stderr]   Downloaded reqwest-eventsource v0.5.0
[INFO] [stderr]   Downloaded simple_asn1 v0.6.4
[INFO] [stderr]   Downloaded instant-distance v0.6.1
[INFO] [stderr]   Downloaded ordered-float v3.9.2
[INFO] [stderr]   Downloaded rust-ini v0.20.0
[INFO] [stderr]   Downloaded config v0.14.1
[INFO] [stderr]   Downloaded yaml-rust2 v0.8.1
[INFO] [stderr]   Downloaded rust-embed v8.11.0
[INFO] [stderr]   Downloaded utoipa-swagger-ui v4.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0336244f01d46063b954586d8ca229929c469a30177b5624246a85c32e61e493
[INFO] running `Command { std: "docker" "start" "-a" "0336244f01d46063b954586d8ca229929c469a30177b5624246a85c32e61e493", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0336244f01d46063b954586d8ca229929c469a30177b5624246a85c32e61e493", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0336244f01d46063b954586d8ca229929c469a30177b5624246a85c32e61e493", kill_on_drop: false }`
[INFO] [stdout] 0336244f01d46063b954586d8ca229929c469a30177b5624246a85c32e61e493
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 46d7ae4e70484d9e599be4080b42828076a0c8aef5a7ba4435f96a4bbc5dc6e6
[INFO] running `Command { std: "docker" "start" "-a" "46d7ae4e70484d9e599be4080b42828076a0c8aef5a7ba4435f96a4bbc5dc6e6", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling pest v2.8.6
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling axum-core v0.3.4
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling const-random v0.1.18
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling dlv-list v0.5.2
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling shellexpand v3.1.2
[INFO] [stderr]    Compiling pest_meta v2.8.6
[INFO] [stderr]    Compiling rust-embed-utils v8.11.0
[INFO] [stderr]    Compiling axum v0.6.20
[INFO] [stderr]    Compiling zip v0.6.6
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling ordered-multimap v0.7.3
[INFO] [stderr]    Compiling hashlink v0.8.4
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling pem v3.0.6
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling yaml-rust2 v0.8.1
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling rust-ini v0.20.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]    Compiling eventsource-stream v0.2.3
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling ordered-float v3.9.2
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling utoipa-swagger-ui v4.0.0
[INFO] [stderr]    Compiling instant-distance v0.6.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling pest_generator v2.8.6
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling pin-project-internal v1.1.12
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling utoipa-gen v4.3.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling rust-embed-impl v8.11.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling pest_derive v2.8.6
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling rust-embed v8.11.0
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling tower-http v0.5.2
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling simple_asn1 v0.6.4
[INFO] [stderr]    Compiling pin-project v1.1.12
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling rustls-webpki v0.101.7
[INFO] [stderr]    Compiling sct v0.7.1
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling ron v0.8.1
[INFO] [stderr]    Compiling json5 v0.4.1
[INFO] [stderr]    Compiling utoipa v4.2.3
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling jsonwebtoken v9.3.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-rustls v0.24.1
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling config v0.14.1
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling hyper-rustls v0.24.2
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling reqwest-eventsource v0.5.0
[INFO] [stderr]    Compiling chenyi-kernel v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `SearchResult`
[INFO] [stdout]  --> src/memory/vector.rs:5:45
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::vectors::{HnswIndex, HnswConfig, SearchResult};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MessageEntry` and `SessionMeta`
[INFO] [stdout]   --> src/context/mod.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::session::{Session, Role, MessageEntry, SessionMeta};
[INFO] [stdout]    |                                     ^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]   --> src/scheduler/registry.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use uuid::Uuid;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FlowStep`
[INFO] [stdout]   --> src/scheduler/executor.rs:13:33
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::{TaskType, TaskFlow, FlowStep};
[INFO] [stdout]    |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/vectors/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `params`
[INFO] [stdout]   --> src/storage/sqlite.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rusqlite::{Connection, params, OpenFlags, OptionalExtension};
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/registry.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::{Tool, ToolError, ToolInfo};
[INFO] [stdout]   |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `placeholders`
[INFO] [stdout]    --> src/storage/sqlite.rs:386:13
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let placeholders: Vec<String> = (0..values.len()).map(|i| format!("?{}", i + 1)).collect();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_placeholders`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scheduler`, `sandbox`, `permissions`, `vectors`, `storage`, and `plugins` are never read
[INFO] [stdout]   --> src/lib.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct AgentKernel {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 42 |     scheduler: Arc<Mutex<scheduler::TaskScheduler>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     sandbox: Arc<Mutex<sandbox::Sandbox>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 47 |     /// 权限管理
[INFO] [stdout] 48 |     permissions: Arc<permissions::PermissionManager>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     vectors: Arc<Mutex<vectors::VectorEngine>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 53 |     /// 存储引擎
[INFO] [stdout] 54 |     storage: Arc<storage::StorageEngine>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 55 |     /// 插件加载器
[INFO] [stdout] 56 |     plugins: Arc<Mutex<plugins::PluginLoader>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `worker_count` and `config` are never read
[INFO] [stdout]   --> src/scheduler/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct TaskScheduler {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     worker_count: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 30 |     /// 配置
[INFO] [stdout] 31 |     config: SchedulerConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `finish_reason` is never read
[INFO] [stdout]    --> src/llm/mod.rs:297:5
[INFO] [stdout]     |
[INFO] [stdout] 295 | struct ChatChoice {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] 296 |     message: ChatMessage,
[INFO] [stdout] 297 |     finish_reason: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ChatChoice` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `role` is never read
[INFO] [stdout]    --> src/llm/mod.rs:302:5
[INFO] [stdout]     |
[INFO] [stdout] 301 | struct ChatMessage {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 302 |     role: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ChatMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/vectors/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct VectorEngine {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     config: VectorConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/storage/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct StorageEngine {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     config: StorageConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/storage/sqlite.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct SqliteStorage {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 91 |     conn: Arc<Mutex<Connection>>,
[INFO] [stdout] 92 |     config: SqliteConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::Router`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use axum::Router;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::api::error::ApiResult`
[INFO] [stdout]  --> src/api/handlers/session.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::api::error::ApiResult;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ApiError` and `ApiResult`
[INFO] [stdout]   --> src/api/mod.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use error::{ApiError, ApiResult};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Claims` is never constructed
[INFO] [stdout]  --> src/api/auth.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Claims {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthConfig` is never constructed
[INFO] [stdout]   --> src/api/auth.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AuthConfig {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `generate_token`, and `verify_token` are never used
[INFO] [stdout]   --> src/api/auth.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl AuthConfig {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 23 |     pub fn new(jwt_secret: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn generate_token(&self, user_id: &str, role: &str, permissions: Vec<String>) -> Result<String, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn verify_token(&self, token: &str) -> Result<Claims, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ApiError` is never used
[INFO] [stdout]  --> src/api/error.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum ApiError {
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ApiResult` is never used
[INFO] [stdout]   --> src/api/error.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub type ApiResult<T> = Result<T, ApiError>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `code`, `status_code`, and `to_json` are never used
[INFO] [stdout]   --> src/api/error.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl ApiError {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 32 |     /// 获取错误码
[INFO] [stdout] 33 |     pub fn code(&self) -> u16 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn status_code(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn to_json(&self) -> serde_json::Value {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/api/dto.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct CreateSessionRequest {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub config: Option<SessionConfigDto>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CreateSessionRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_tokens` and `compression_threshold` are never read
[INFO] [stdout]   --> src/api/dto.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SessionConfigDto {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] 19 |     pub max_tokens: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 20 |     pub compression_threshold: Option<f32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SessionConfigDto` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `role` and `content` are never read
[INFO] [stdout]   --> src/api/dto.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct SendMessageRequest {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 34 |     pub role: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 35 |     pub content: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SendMessageRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `content` and `metadata` are never read
[INFO] [stdout]   --> src/api/dto.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct StoreMemoryRequest {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 67 |     pub content: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 68 |     pub metadata: Option<serde_json::Value>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StoreMemoryRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `query`, `mode`, `limit`, and `threshold` are never read
[INFO] [stdout]   --> src/api/dto.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct SearchMemoryRequest {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] 82 |     pub query: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 83 |     #[serde(default = "default_search_mode")]
[INFO] [stdout] 84 |     pub mode: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 85 |     #[serde(default = "default_limit")]
[INFO] [stdout] 86 |     pub limit: usize,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 87 |     #[serde(default = "default_threshold")]
[INFO] [stdout] 88 |     pub threshold: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SearchMemoryRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecuteToolRequest` is never constructed
[INFO] [stdout]    --> src/api/dto.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct ExecuteToolRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecuteToolResponse` is never constructed
[INFO] [stdout]    --> src/api/dto.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct ExecuteToolResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolDto` is never constructed
[INFO] [stdout]    --> src/api/dto.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub struct ToolDto {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SkillDto` is never constructed
[INFO] [stdout]    --> src/api/dto.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub struct SkillDto {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 27s
[INFO] running `Command { std: "docker" "inspect" "46d7ae4e70484d9e599be4080b42828076a0c8aef5a7ba4435f96a4bbc5dc6e6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "46d7ae4e70484d9e599be4080b42828076a0c8aef5a7ba4435f96a4bbc5dc6e6", kill_on_drop: false }`
[INFO] [stdout] 46d7ae4e70484d9e599be4080b42828076a0c8aef5a7ba4435f96a4bbc5dc6e6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5021b8b4f0d503d4b09316b91eb24cacbe7f3e231aa449d761b1a1597f829121
[INFO] running `Command { std: "docker" "start" "-a" "5021b8b4f0d503d4b09316b91eb24cacbe7f3e231aa449d761b1a1597f829121", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling ordered-float v3.9.2
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling tower-http v0.5.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling utoipa v4.2.3
[INFO] [stderr]    Compiling json5 v0.4.1
[INFO] [stderr]    Compiling ron v0.8.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling simple_asn1 v0.6.4
[INFO] [stderr]    Compiling jsonwebtoken v9.3.1
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-rustls v0.24.1
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling ordered-multimap v0.7.3
[INFO] [stderr]    Compiling hashlink v0.8.4
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling tokio-test v0.4.5
[INFO] [stderr]    Compiling yaml-rust2 v0.8.1
[INFO] [stderr]    Compiling rust-ini v0.20.0
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling instant-distance v0.6.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling config v0.14.1
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling hyper-rustls v0.24.2
[INFO] [stderr]    Compiling axum v0.6.20
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling reqwest-eventsource v0.5.0
[INFO] [stderr]    Compiling utoipa-swagger-ui v4.0.0
[INFO] [stderr]    Compiling chenyi-kernel v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `SearchResult`
[INFO] [stdout]  --> src/memory/vector.rs:5:45
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::vectors::{HnswIndex, HnswConfig, SearchResult};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MessageEntry` and `SessionMeta`
[INFO] [stdout]   --> src/context/mod.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::session::{Session, Role, MessageEntry, SessionMeta};
[INFO] [stdout]    |                                     ^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]   --> src/scheduler/registry.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use uuid::Uuid;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FlowStep`
[INFO] [stdout]   --> src/scheduler/executor.rs:13:33
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::{TaskType, TaskFlow, FlowStep};
[INFO] [stdout]    |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/vectors/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `params`
[INFO] [stdout]   --> src/storage/sqlite.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rusqlite::{Connection, params, OpenFlags, OptionalExtension};
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/registry.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::{Tool, ToolError, ToolInfo};
[INFO] [stdout]   |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SearchResult`
[INFO] [stdout]  --> src/memory/vector.rs:5:45
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::vectors::{HnswIndex, HnswConfig, SearchResult};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SessionMeta`
[INFO] [stdout]   --> src/context/mod.rs:12:51
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::session::{Session, Role, MessageEntry, SessionMeta};
[INFO] [stdout]    |                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]   --> src/scheduler/registry.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use uuid::Uuid;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FlowStep`
[INFO] [stdout]   --> src/scheduler/executor.rs:13:33
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::{TaskType, TaskFlow, FlowStep};
[INFO] [stdout]    |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/vectors/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `params`
[INFO] [stdout]   --> src/storage/sqlite.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rusqlite::{Connection, params, OpenFlags, OptionalExtension};
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/registry.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::{Tool, ToolError, ToolInfo};
[INFO] [stdout]   |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `placeholders`
[INFO] [stdout]    --> src/storage/sqlite.rs:386:13
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let placeholders: Vec<String> = (0..values.len()).map(|i| format!("?{}", i + 1)).collect();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_placeholders`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scheduler`, `sandbox`, `permissions`, `vectors`, `storage`, and `plugins` are never read
[INFO] [stdout]   --> src/lib.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct AgentKernel {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 42 |     scheduler: Arc<Mutex<scheduler::TaskScheduler>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     sandbox: Arc<Mutex<sandbox::Sandbox>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 47 |     /// 权限管理
[INFO] [stdout] 48 |     permissions: Arc<permissions::PermissionManager>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     vectors: Arc<Mutex<vectors::VectorEngine>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 53 |     /// 存储引擎
[INFO] [stdout] 54 |     storage: Arc<storage::StorageEngine>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 55 |     /// 插件加载器
[INFO] [stdout] 56 |     plugins: Arc<Mutex<plugins::PluginLoader>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `worker_count` and `config` are never read
[INFO] [stdout]   --> src/scheduler/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct TaskScheduler {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     worker_count: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 30 |     /// 配置
[INFO] [stdout] 31 |     config: SchedulerConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `finish_reason` is never read
[INFO] [stdout]    --> src/llm/mod.rs:297:5
[INFO] [stdout]     |
[INFO] [stdout] 295 | struct ChatChoice {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] 296 |     message: ChatMessage,
[INFO] [stdout] 297 |     finish_reason: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ChatChoice` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `role` is never read
[INFO] [stdout]    --> src/llm/mod.rs:302:5
[INFO] [stdout]     |
[INFO] [stdout] 301 | struct ChatMessage {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 302 |     role: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ChatMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/vectors/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct VectorEngine {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     config: VectorConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/storage/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct StorageEngine {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     config: StorageConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/storage/sqlite.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct SqliteStorage {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 91 |     conn: Arc<Mutex<Connection>>,
[INFO] [stdout] 92 |     config: SqliteConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `placeholders`
[INFO] [stdout]    --> src/storage/sqlite.rs:386:13
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let placeholders: Vec<String> = (0..values.len()).map(|i| format!("?{}", i + 1)).collect();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_placeholders`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scheduler`, `sandbox`, `permissions`, `vectors`, `storage`, and `plugins` are never read
[INFO] [stdout]   --> src/lib.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct AgentKernel {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 42 |     scheduler: Arc<Mutex<scheduler::TaskScheduler>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     sandbox: Arc<Mutex<sandbox::Sandbox>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 47 |     /// 权限管理
[INFO] [stdout] 48 |     permissions: Arc<permissions::PermissionManager>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     vectors: Arc<Mutex<vectors::VectorEngine>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 53 |     /// 存储引擎
[INFO] [stdout] 54 |     storage: Arc<storage::StorageEngine>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 55 |     /// 插件加载器
[INFO] [stdout] 56 |     plugins: Arc<Mutex<plugins::PluginLoader>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `worker_count` and `config` are never read
[INFO] [stdout]   --> src/scheduler/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct TaskScheduler {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     worker_count: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 30 |     /// 配置
[INFO] [stdout] 31 |     config: SchedulerConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `finish_reason` is never read
[INFO] [stdout]    --> src/llm/mod.rs:297:5
[INFO] [stdout]     |
[INFO] [stdout] 295 | struct ChatChoice {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] 296 |     message: ChatMessage,
[INFO] [stdout] 297 |     finish_reason: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ChatChoice` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `role` is never read
[INFO] [stdout]    --> src/llm/mod.rs:302:5
[INFO] [stdout]     |
[INFO] [stdout] 301 | struct ChatMessage {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 302 |     role: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ChatMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/vectors/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct VectorEngine {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     config: VectorConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/storage/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct StorageEngine {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     config: StorageConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/storage/sqlite.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct SqliteStorage {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 91 |     conn: Arc<Mutex<Connection>>,
[INFO] [stdout] 92 |     config: SqliteConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::Router`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use axum::Router;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::api::error::ApiResult`
[INFO] [stdout]  --> src/api/handlers/session.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::api::error::ApiResult;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ApiError` and `ApiResult`
[INFO] [stdout]   --> src/api/mod.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use error::{ApiError, ApiResult};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::Router`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use axum::Router;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::api::error::ApiResult`
[INFO] [stdout]  --> src/api/handlers/session.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::api::error::ApiResult;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ApiError` and `ApiResult`
[INFO] [stdout]   --> src/api/mod.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use error::{ApiError, ApiResult};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/tools_integration_test.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |     assert!(stats.total_execution_time_ms >= 0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Claims` is never constructed
[INFO] [stdout]  --> src/api/auth.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Claims {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthConfig` is never constructed
[INFO] [stdout]   --> src/api/auth.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AuthConfig {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `generate_token`, and `verify_token` are never used
[INFO] [stdout]   --> src/api/auth.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl AuthConfig {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 23 |     pub fn new(jwt_secret: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn generate_token(&self, user_id: &str, role: &str, permissions: Vec<String>) -> Result<String, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn verify_token(&self, token: &str) -> Result<Claims, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ApiError` is never used
[INFO] [stdout]  --> src/api/error.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum ApiError {
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ApiResult` is never used
[INFO] [stdout]   --> src/api/error.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub type ApiResult<T> = Result<T, ApiError>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `code`, `status_code`, and `to_json` are never used
[INFO] [stdout]   --> src/api/error.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl ApiError {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 32 |     /// 获取错误码
[INFO] [stdout] 33 |     pub fn code(&self) -> u16 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn status_code(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn to_json(&self) -> serde_json::Value {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/api/dto.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct CreateSessionRequest {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub config: Option<SessionConfigDto>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CreateSessionRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_tokens` and `compression_threshold` are never read
[INFO] [stdout]   --> src/api/dto.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SessionConfigDto {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] 19 |     pub max_tokens: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 20 |     pub compression_threshold: Option<f32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SessionConfigDto` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `role` and `content` are never read
[INFO] [stdout]   --> src/api/dto.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct SendMessageRequest {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 34 |     pub role: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 35 |     pub content: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SendMessageRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `content` and `metadata` are never read
[INFO] [stdout]   --> src/api/dto.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct StoreMemoryRequest {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 67 |     pub content: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 68 |     pub metadata: Option<serde_json::Value>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StoreMemoryRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `query`, `mode`, `limit`, and `threshold` are never read
[INFO] [stdout]   --> src/api/dto.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct SearchMemoryRequest {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] 82 |     pub query: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 83 |     #[serde(default = "default_search_mode")]
[INFO] [stdout] 84 |     pub mode: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 85 |     #[serde(default = "default_limit")]
[INFO] [stdout] 86 |     pub limit: usize,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 87 |     #[serde(default = "default_threshold")]
[INFO] [stdout] 88 |     pub threshold: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SearchMemoryRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecuteToolRequest` is never constructed
[INFO] [stdout]    --> src/api/dto.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct ExecuteToolRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecuteToolResponse` is never constructed
[INFO] [stdout]    --> src/api/dto.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct ExecuteToolResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolDto` is never constructed
[INFO] [stdout]    --> src/api/dto.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub struct ToolDto {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SkillDto` is never constructed
[INFO] [stdout]    --> src/api/dto.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub struct SkillDto {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ApiError` is never used
[INFO] [stdout]  --> src/api/error.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum ApiError {
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ApiResult` is never used
[INFO] [stdout]   --> src/api/error.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub type ApiResult<T> = Result<T, ApiError>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `code`, `status_code`, and `to_json` are never used
[INFO] [stdout]   --> src/api/error.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl ApiError {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 32 |     /// 获取错误码
[INFO] [stdout] 33 |     pub fn code(&self) -> u16 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn status_code(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn to_json(&self) -> serde_json::Value {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/api/dto.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct CreateSessionRequest {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub config: Option<SessionConfigDto>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CreateSessionRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_tokens` and `compression_threshold` are never read
[INFO] [stdout]   --> src/api/dto.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SessionConfigDto {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] 19 |     pub max_tokens: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 20 |     pub compression_threshold: Option<f32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SessionConfigDto` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `role` and `content` are never read
[INFO] [stdout]   --> src/api/dto.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct SendMessageRequest {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 34 |     pub role: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 35 |     pub content: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SendMessageRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `content` and `metadata` are never read
[INFO] [stdout]   --> src/api/dto.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct StoreMemoryRequest {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 67 |     pub content: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 68 |     pub metadata: Option<serde_json::Value>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StoreMemoryRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `query`, `mode`, `limit`, and `threshold` are never read
[INFO] [stdout]   --> src/api/dto.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct SearchMemoryRequest {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] 82 |     pub query: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 83 |     #[serde(default = "default_search_mode")]
[INFO] [stdout] 84 |     pub mode: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 85 |     #[serde(default = "default_limit")]
[INFO] [stdout] 86 |     pub limit: usize,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 87 |     #[serde(default = "default_threshold")]
[INFO] [stdout] 88 |     pub threshold: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SearchMemoryRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecuteToolRequest` is never constructed
[INFO] [stdout]    --> src/api/dto.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct ExecuteToolRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecuteToolResponse` is never constructed
[INFO] [stdout]    --> src/api/dto.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct ExecuteToolResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolDto` is never constructed
[INFO] [stdout]    --> src/api/dto.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub struct ToolDto {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SkillDto` is never constructed
[INFO] [stdout]    --> src/api/dto.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub struct SkillDto {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 07s
[INFO] running `Command { std: "docker" "inspect" "5021b8b4f0d503d4b09316b91eb24cacbe7f3e231aa449d761b1a1597f829121", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5021b8b4f0d503d4b09316b91eb24cacbe7f3e231aa449d761b1a1597f829121", kill_on_drop: false }`
[INFO] [stdout] 5021b8b4f0d503d4b09316b91eb24cacbe7f3e231aa449d761b1a1597f829121
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 54910b31a28060eca2abd72c6e8ac187910f2b7cca1d8f0bc5c13f8bb59442d4
[INFO] running `Command { std: "docker" "start" "-a" "54910b31a28060eca2abd72c6e8ac187910f2b7cca1d8f0bc5c13f8bb59442d4", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `SearchResult`
[INFO] [stderr]  --> src/memory/vector.rs:5:45
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::vectors::{HnswIndex, HnswConfig, SearchResult};
[INFO] [stderr]   |                                             ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `MessageEntry` and `SessionMeta`
[INFO] [stderr]   --> src/context/mod.rs:12:37
[INFO] [stderr]    |
[INFO] [stderr] 12 | use crate::session::{Session, Role, MessageEntry, SessionMeta};
[INFO] [stderr]    |                                     ^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `uuid::Uuid`
[INFO] [stderr]   --> src/scheduler/registry.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use uuid::Uuid;
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `FlowStep`
[INFO] [stderr]   --> src/scheduler/executor.rs:13:33
[INFO] [stderr]    |
[INFO] [stderr] 13 | use super::{TaskType, TaskFlow, FlowStep};
[INFO] [stderr]    |                                 ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]   --> src/vectors/mod.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use std::collections::HashMap;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `params`
[INFO] [stderr]   --> src/storage/sqlite.rs:12:28
[INFO] [stderr]    |
[INFO] [stderr] 12 | use rusqlite::{Connection, params, OpenFlags, OptionalExtension};
[INFO] [stderr]    |                            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ToolError`
[INFO] [stderr]  --> src/tools/registry.rs:8:19
[INFO] [stderr]   |
[INFO] [stderr] 8 | use super::{Tool, ToolError, ToolInfo};
[INFO] [stderr]   |                   ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `placeholders`
[INFO] [stderr]    --> src/storage/sqlite.rs:386:13
[INFO] [stderr]     |
[INFO] [stderr] 386 |         let placeholders: Vec<String> = (0..values.len()).map(|i| format!("?{}", i + 1)).collect();
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_placeholders`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `scheduler`, `sandbox`, `permissions`, `vectors`, `storage`, and `plugins` are never read
[INFO] [stderr]   --> src/lib.rs:42:5
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub struct AgentKernel {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 42 |     scheduler: Arc<Mutex<scheduler::TaskScheduler>>,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 46 |     sandbox: Arc<Mutex<sandbox::Sandbox>>,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 47 |     /// 权限管理
[INFO] [stderr] 48 |     permissions: Arc<permissions::PermissionManager>,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 52 |     vectors: Arc<Mutex<vectors::VectorEngine>>,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 53 |     /// 存储引擎
[INFO] [stderr] 54 |     storage: Arc<storage::StorageEngine>,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 55 |     /// 插件加载器
[INFO] [stderr] 56 |     plugins: Arc<Mutex<plugins::PluginLoader>>,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `worker_count` and `config` are never read
[INFO] [stderr]   --> src/scheduler/mod.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub struct TaskScheduler {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 29 |     worker_count: usize,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 30 |     /// 配置
[INFO] [stderr] 31 |     config: SchedulerConfig,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `finish_reason` is never read
[INFO] [stderr]    --> src/llm/mod.rs:297:5
[INFO] [stderr]     |
[INFO] [stderr] 295 | struct ChatChoice {
[INFO] [stderr]     |        ---------- field in this struct
[INFO] [stderr] 296 |     message: ChatMessage,
[INFO] [stderr] 297 |     finish_reason: String,
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ChatChoice` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `role` is never read
[INFO] [stderr]    --> src/llm/mod.rs:302:5
[INFO] [stderr]     |
[INFO] [stderr] 301 | struct ChatMessage {
[INFO] [stderr]     |        ----------- field in this struct
[INFO] [stderr] 302 |     role: String,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ChatMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `config` is never read
[INFO] [stderr]   --> src/vectors/mod.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct VectorEngine {
[INFO] [stderr]    |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 24 |     config: VectorConfig,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `config` is never read
[INFO] [stderr]   --> src/storage/mod.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct StorageEngine {
[INFO] [stderr]    |            ------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 24 |     config: StorageConfig,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `config` is never read
[INFO] [stderr]   --> src/storage/sqlite.rs:92:5
[INFO] [stderr]    |
[INFO] [stderr] 90 | pub struct SqliteStorage {
[INFO] [stderr]    |            ------------- field in this struct
[INFO] [stderr] 91 |     conn: Arc<Mutex<Connection>>,
[INFO] [stderr] 92 |     config: SqliteConfig,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `chenyi-kernel` (lib) generated 15 warnings (run `cargo fix --lib -p chenyi-kernel` to apply 8 suggestions)
[INFO] [stderr] warning: unused import: `axum::Router`
[INFO] [stderr]  --> src/main.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use axum::Router;
[INFO] [stderr]   |     ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::api::error::ApiResult`
[INFO] [stderr]  --> src/api/handlers/session.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::api::error::ApiResult;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ApiError` and `ApiResult`
[INFO] [stderr]   --> src/api/mod.rs:11:17
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use error::{ApiError, ApiResult};
[INFO] [stderr]    |                 ^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Claims` is never constructed
[INFO] [stderr]  --> src/api/auth.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct Claims {
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AuthConfig` is never constructed
[INFO] [stderr]   --> src/api/auth.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub struct AuthConfig {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `generate_token`, and `verify_token` are never used
[INFO] [stderr]   --> src/api/auth.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 22 | impl AuthConfig {
[INFO] [stderr]    | --------------- associated items in this implementation
[INFO] [stderr] 23 |     pub fn new(jwt_secret: String) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 31 |     pub fn generate_token(&self, user_id: &str, role: &str, permissions: Vec<String>) -> Result<String, String> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 51 |     pub fn verify_token(&self, token: &str) -> Result<Claims, String> {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ApiError` is never used
[INFO] [stderr]  --> src/api/error.rs:8:10
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub enum ApiError {
[INFO] [stderr]   |          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `ApiResult` is never used
[INFO] [stderr]   --> src/api/error.rs:29:10
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub type ApiResult<T> = Result<T, ApiError>;
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `code`, `status_code`, and `to_json` are never used
[INFO] [stderr]   --> src/api/error.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | impl ApiError {
[INFO] [stderr]    | ------------- methods in this implementation
[INFO] [stderr] 32 |     /// 获取错误码
[INFO] [stderr] 33 |     pub fn code(&self) -> u16 {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 45 |     pub fn status_code(&self) -> u16 {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 |     pub fn to_json(&self) -> serde_json::Value {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `config` is never read
[INFO] [stderr]   --> src/api/dto.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct CreateSessionRequest {
[INFO] [stderr]    |            -------------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 13 |     pub config: Option<SessionConfigDto>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CreateSessionRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `max_tokens` and `compression_threshold` are never read
[INFO] [stderr]   --> src/api/dto.rs:19:9
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct SessionConfigDto {
[INFO] [stderr]    |            ---------------- fields in this struct
[INFO] [stderr] 19 |     pub max_tokens: Option<usize>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 20 |     pub compression_threshold: Option<f32>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SessionConfigDto` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `role` and `content` are never read
[INFO] [stderr]   --> src/api/dto.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub struct SendMessageRequest {
[INFO] [stderr]    |            ------------------ fields in this struct
[INFO] [stderr] 34 |     pub role: String,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 35 |     pub content: String,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SendMessageRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `content` and `metadata` are never read
[INFO] [stderr]   --> src/api/dto.rs:67:9
[INFO] [stderr]    |
[INFO] [stderr] 66 | pub struct StoreMemoryRequest {
[INFO] [stderr]    |            ------------------ fields in this struct
[INFO] [stderr] 67 |     pub content: String,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 68 |     pub metadata: Option<serde_json::Value>,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `StoreMemoryRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `query`, `mode`, `limit`, and `threshold` are never read
[INFO] [stderr]   --> src/api/dto.rs:82:9
[INFO] [stderr]    |
[INFO] [stderr] 81 | pub struct SearchMemoryRequest {
[INFO] [stderr]    |            ------------------- fields in this struct
[INFO] [stderr] 82 |     pub query: String,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 83 |     #[serde(default = "default_search_mode")]
[INFO] [stderr] 84 |     pub mode: String,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 85 |     #[serde(default = "default_limit")]
[INFO] [stderr] 86 |     pub limit: usize,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 87 |     #[serde(default = "default_threshold")]
[INFO] [stderr] 88 |     pub threshold: f32,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SearchMemoryRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ExecuteToolRequest` is never constructed
[INFO] [stderr]    --> src/api/dto.rs:116:12
[INFO] [stderr]     |
[INFO] [stderr] 116 | pub struct ExecuteToolRequest {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ExecuteToolResponse` is never constructed
[INFO] [stderr]    --> src/api/dto.rs:122:12
[INFO] [stderr]     |
[INFO] [stderr] 122 | pub struct ExecuteToolResponse {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ToolDto` is never constructed
[INFO] [stderr]    --> src/api/dto.rs:130:12
[INFO] [stderr]     |
[INFO] [stderr] 130 | pub struct ToolDto {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SkillDto` is never constructed
[INFO] [stderr]    --> src/api/dto.rs:140:12
[INFO] [stderr]     |
[INFO] [stderr] 140 | pub struct SkillDto {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `chenyi-kernel` (bin "chenyi-kernel") generated 18 warnings (run `cargo fix --bin "chenyi-kernel" -p chenyi-kernel` to apply 3 suggestions)
[INFO] [stderr] warning: unused import: `SessionMeta`
[INFO] [stderr]   --> src/context/mod.rs:12:51
[INFO] [stderr]    |
[INFO] [stderr] 12 | use crate::session::{Session, Role, MessageEntry, SessionMeta};
[INFO] [stderr]    |                                                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> tests/tools_integration_test.rs:236:13
[INFO] [stderr]     |
[INFO] [stderr] 236 |     assert!(stats.total_execution_time_ms >= 0);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ApiError` is never used
[INFO] [stderr]  --> src/api/error.rs:8:10
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub enum ApiError {
[INFO] [stderr]   |          ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `chenyi-kernel` (lib test) generated 15 warnings (14 duplicates) (run `cargo fix --lib -p chenyi-kernel --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `chenyi-kernel` (test "tools_integration_test") generated 1 warning
[INFO] [stderr] warning: `chenyi-kernel` (bin "chenyi-kernel" test) generated 15 warnings (14 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.49s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/chenyi_kernel-de674769a7bcd0ba)
[INFO] [stdout] 
[INFO] [stdout] running 131 tests
[INFO] [stdout] test context::tests::test_context_engine ... ok
[INFO] [stdout] test llm::tests::test_embedding_dimension ... ok
[INFO] [stdout] test context::tests::test_token_estimation ... ok
[INFO] [stdout] test llm::tests::test_provider_embedding_model ... ok
[INFO] [stdout] test bus::tests::test_publish_subscribe ... ok
[INFO] [stdout] test memory::hybrid::tests::test_hybrid_merge ... ok
[INFO] [stdout] test memory::tests::test_embedding_cache ... ok
[INFO] [stdout] test memory::embedding::tests::test_hash_text ... ok
[INFO] [stdout] test memory::embedding::tests::test_embed_cache ... ok
[INFO] [stdout] test memory::fts::tests::test_full_text_index ... ok
[INFO] [stdout] test memory::embedding::tests::test_provider_dimension ... ok
[INFO] [stdout] test memory::embedding::tests::test_cache_stats ... ok
[INFO] [stdout] test memory::tests::test_embedding_provider_dimension ... ok
[INFO] [stdout] hello
[INFO] [stdout] test permissions::tests::test_grant_role ... ok
[INFO] [stdout] test plugins::tests::test_load_plugin ... ok
[INFO] [stdout] test permissions::tests::test_revoke_role ... ok
[INFO] [stdout] test scheduler::executor::tests::test_executor_create ... ok
[INFO] [stdout] test memory::vector::tests::test_vector_index_clear ... ok
[INFO] [stdout] test llm::tests::test_llm_client_creation ... ok
[INFO] [stdout] test memory::vector::tests::test_vector_index ... ok
[INFO] [stdout] test plugins::tests::test_register_plugin ... ok
[INFO] [stdout] test scheduler::executor::tests::test_execute_not_found ... ok
[INFO] [stdout] test memory::vector::tests::test_vector_index_persistence ... ok
[INFO] [stdout] test sandbox::tests::test_sandbox_spawn ... ok
[INFO] [stdout] test scheduler::executor::tests::test_result_storage ... ok
[INFO] [stdout] test memory::tests::test_memory_engine_with_embedding ... ok
[INFO] [stdout] test scheduler::executor::tests::test_submit_task ... ok
[INFO] [stdout] test scheduler::flow::tests::test_circular_dependency_detection ... ok
[INFO] [stdout] test scheduler::flow::tests::test_execution_order ... ok
[INFO] [stdout] test scheduler::flow::tests::test_flow_creation ... ok
[INFO] [stdout] test scheduler::tests::test_scheduler_submit ... ok
[INFO] [stdout] test scheduler::registry::tests::test_list_by_category ... ok
[INFO] [stdout] test session::compaction::tests::test_count_tokens ... ok
[INFO] [stdout] test session::compaction::tests::test_needs_compression ... ok
[INFO] [stdout] test session::router::tests::test_route_group ... ok
[INFO] [stdout] test scheduler::tests::test_task_priority ... ok
[INFO] [stdout] test session::router::tests::test_route_main ... ok
[INFO] [stdout] test session::token_counter::tests::test_count_chinese ... ok
[INFO] [stdout] test session::token_counter::tests::test_count_empty ... ok
[INFO] [stdout] test session::token_counter::tests::test_count_messages ... ok
[INFO] [stdout] test session::router::tests::test_route_per_channel_peer ... ok
[INFO] [stdout] test session::token_counter::tests::test_count_mixed ... ok
[INFO] [stdout] test session::compaction::tests::test_compact ... ok
[INFO] [stdout] test session::tests::test_session_manager_create ... ok
[INFO] [stdout] test session::router::tests::test_route_per_peer ... ok
[INFO] [stdout] test scheduler::registry::tests::test_register_task ... ok
[INFO] [stdout] test scheduler::registry::tests::test_unregister_task ... ok
[INFO] [stdout] test session::token_counter::tests::test_count_english ... ok
[INFO] [stdout] test session::token_counter::tests::test_count_short ... ok
[INFO] [stdout] test session::token_counter::tests::test_default ... ok
[INFO] [stdout] test session::token_counter::tests::test_is_over_limit ... ok
[INFO] [stdout] test session::token_counter::tests::test_remaining ... ok
[INFO] [stdout] test session::store::tests::test_session_store ... ok
[INFO] [stdout] test session::tests::test_add_message ... ok
[INFO] [stdout] test session::token_counter::tests::test_usage_ratio ... ok
[INFO] [stdout] test session::transcript::tests::test_transcript_create_and_load ... ok
[INFO] [stdout] test skills::parser::tests::test_parse_frontmatter_directly ... ok
[INFO] [stdout] test skills::parser::tests::test_parse_skill_without_frontmatter ... ok
[INFO] [stdout] test skills::parser::tests::test_extract_frontmatter ... ok
[INFO] [stdout] test skills::parser::tests::test_parse_skill_empty_markdown ... ok
[INFO] [stdout] test skills::parser::tests::test_parse_skill_with_requires_array_format ... ok
[INFO] [stdout] test skills::parser::tests::test_parse_skill_invalid_yaml ... ok
[INFO] [stdout] test skills::parser::tests::test_validate_meta_empty_description ... ok
[INFO] [stdout] test skills::parser::tests::test_parse_skill_chinese_content ... ok
[INFO] [stdout] test skills::parser::tests::test_validate_meta_empty_name ... ok
[INFO] [stdout] test skills::parser::tests::test_validate_meta_empty_version ... ok
[INFO] [stdout] test skills::parser::tests::test_validate_meta_valid ... ok
[INFO] [stdout] test skills::parser::tests::test_parse_skill_basic ... ok
[INFO] [stdout] test skills::registry::tests::test_get_skill ... ok
[INFO] [stdout] test skills::registry::tests::test_unregister_skill ... ok
[INFO] [stdout] test skills::registry::tests::test_clear_registry ... ok
[INFO] [stdout] test skills::tests::test_skill_creation ... ok
[INFO] [stdout] test skills::parser::tests::test_parse_skill_whitespace_handling ... ok
[INFO] [stdout] test skills::tests::test_skill_error_messages ... ok
[INFO] [stdout] test skills::parser::tests::test_parse_skill_missing_required_fields ... ok
[INFO] [stdout] test skills::registry::tests::test_register_skill ... ok
[INFO] [stdout] test skills::registry::tests::test_list_by_category ... ok
[INFO] [stdout] test skills::tests::test_skill_with_all_fields ... ok
[INFO] [stdout] test skills::tests::test_skill_meta_from_skill ... ok
[INFO] [stdout] test skills::tests::test_skill_to_meta ... ok
[INFO] [stdout] test skills::parser::tests::test_parse_skill_missing_closing_delimiter ... ok
[INFO] [stdout] test skills::parser::tests::test_parse_skill_with_all_fields ... ok
[INFO] [stdout] test tools::builtins::tests::test_echo_tool_basic ... ok
[INFO] [stdout] test tools::builtins::tests::test_echo_tool_missing_message ... ok
[INFO] [stdout] test tools::builtins::tests::test_echo_tool_transform ... ok
[INFO] [stdout] test tools::builtins::tests::test_echo_tool_with_prefix ... ok
[INFO] [stdout] test tools::builtins::tests::test_time_tool_custom_format ... ok
[INFO] [stdout] test skills::tests::test_skill_meta_builder_pattern ... ok
[INFO] [stdout] test skills::parser::tests::test_parse_skill_multiline_description ... ok
[INFO] [stdout] test tools::builtins::tests::test_calculator_divide_by_zero ... ok
[INFO] [stdout] test tools::builtins::tests::test_calculator_tool ... ok
[INFO] [stdout] test tools::error::tests::test_error_creation ... ok
[INFO] [stdout] test tools::builtins::tests::test_time_tool_local ... ok
[INFO] [stdout] test storage::tests::test_storage_delete ... ok
[INFO] [stdout] test tools::builtins::tests::test_tool_info ... ok
[INFO] [stdout] test storage::tests::test_storage_put_get ... ok
[INFO] [stdout] test tools::executor::tests::test_cache_entry ... ok
[INFO] [stdout] test tools::builtins::tests::test_time_tool_utc ... ok
[INFO] [stdout] test tools::executor::tests::test_execute_not_found ... ok
[INFO] [stdout] test tools::executor::tests::test_execution_stats ... ok
[INFO] [stdout] test tools::executor::tests::test_executor_config_default ... ok
[INFO] [stdout] test tools::error::tests::test_is_retryable ... ok
[INFO] [stdout] test tools::registry::tests::test_clear ... ok
[INFO] [stdout] test tools::registry::tests::test_list ... ok
[INFO] [stdout] test tools::registry::tests::test_overwrite ... ok
[INFO] [stdout] test tools::registry::tests::test_register_and_get ... ok
[INFO] [stdout] test tools::registry::tests::test_register_all ... ok
[INFO] [stdout] test tools::registry::tests::test_unregister ... ok
[INFO] [stdout] test tools::traits::tests::test_tool_info ... ok
[INFO] [stdout] test tools::traits::tests::test_tool_info_clone ... ok
[INFO] [stdout] test vectors::hnsw::tests::test_cosine_similarity ... ok
[INFO] [stdout] test vectors::hnsw::tests::test_dimension_mismatch ... ok
[INFO] [stdout] test vectors::hnsw::tests::test_hnsw_remove ... ok
[INFO] [stdout] test vectors::tests::test_vector_engine_delete ... ok
[INFO] [stdout] test vectors::tests::test_vector_engine_batch_insert ... ok
[INFO] [stdout] test vectors::hnsw::tests::test_hnsw_insert_and_search ... ok
[INFO] [stdout] test vectors::tests::test_vector_engine_insert ... ok
[INFO] [stdout] test vectors::tests::test_vector_engine_get ... ok
[INFO] [stdout] test vectors::tests::test_vector_engine_search ... ok
[INFO] [stdout] test tools::registry::tests::test_list_info ... ok
[INFO] [stdout] test vectors::tests::test_vector_engine_persistence ... ok
[INFO] [stdout] test vectors::hnsw::tests::test_hnsw_save_and_load ... ok
[INFO] [stdout] test storage::sqlite::tests::test_fts5_insert_and_search ... ok
[INFO] [stdout] test storage::sqlite::tests::test_fts5_advanced_search ... ok
[INFO] [stdout] test storage::sqlite::tests::test_sqlite_storage_create ... ok
[INFO] [stdout] test storage::sqlite::tests::test_fts5_chinese_search ... ok
[INFO] [stdout] test storage::sqlite::tests::test_fts5_optimize ... ok
[INFO] [stdout] test memory::tests::test_memory_engine_create ... ok
[INFO] [stdout] test storage::sqlite::tests::test_fts5_delete_document ... ok
[INFO] [stdout] test storage::sqlite::tests::test_fts5_create_table ... ok
[INFO] [stdout] test scheduler::executor::tests::test_execute_task ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 131 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/chenyi_kernel-89753213409ca6d7)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test api::auth::tests::test_generate_and_verify_token ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/tools_integration_test.rs (/opt/rustwide/target/debug/deps/tools_integration_test-1f09cb0d0f2d51e3)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test test_tool_info ... ok
[INFO] [stdout] test test_parameter_validation ... ok
[INFO] [stdout] test test_custom_tool ... ok
[INFO] [stdout] test test_registry_operations ... ok
[INFO] [stdout] test test_execution_statistics ... ok
[INFO] [stdout] test test_executor_with_config ... ok
[INFO] [stdout] test test_tool_not_found ... ok
[INFO] [stdout] test test_caching ... ok
[INFO] [stdout] test test_full_workflow ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests chenyi_kernel
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test src/storage/sqlite.rs - storage::sqlite::SqliteStorage::create_fts_table (line 210) ... ignored
[INFO] [stdout] test src/storage/sqlite.rs - storage::sqlite::SqliteStorage::fts_search (line 270) ... ignored
[INFO] [stdout] test src/storage/sqlite.rs - storage::sqlite::SqliteStorage::insert_fts_document (line 242) ... ignored
[INFO] [stdout] test src/tools/builtins.rs - tools::builtins::EchoTool (line 147) ... FAILED
[INFO] [stdout] test src/tools/builtins.rs - tools::builtins::TimeTool (line 22) ... FAILED
[INFO] [stdout] test src/tools/executor.rs - tools::executor::ToolExecutor (line 132) ... FAILED
[INFO] [stdout] test src/tools/mod.rs - tools (line 11) ... FAILED
[INFO] [stdout] test src/tools/builtins.rs - tools::builtins::CalculatorTool (line 287) ... FAILED
[INFO] [stdout] test src/tools/traits.rs - tools::traits::Tool (line 65) ... ok
[INFO] [stdout] test src/tools/registry.rs - tools::registry::ToolRegistry (line 20) ... FAILED
[INFO] [stdout] test src/skills/parser.rs - skills::parser::parse_skill_markdown (line 45) ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/tools/builtins.rs - tools::builtins::EchoTool (line 147) stdout ----
[INFO] [stdout] error[E0599]: no method named `execute` found for struct `EchoTool` in the current scope
[INFO] [stdout]    --> src/tools/builtins.rs:154:19
[INFO] [stdout]     |
[INFO] [stdout] 154 | let result = tool.execute(serde_json::json!({
[INFO] [stdout]     |              -----^^^^^^^ method not found in `EchoTool`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tools/traits.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn execute(&self, params: JsonValue) -> ToolResult;
[INFO] [stdout]     |        ------- the method is available for `EchoTool` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `Tool` which provides `execute` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 146 + use crate::chenyi_kernel::tools::Tool;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `execute` found for struct `EchoTool` in the current scope
[INFO] [stdout]    --> src/tools/builtins.rs:159:19
[INFO] [stdout]     |
[INFO] [stdout] 159 | let result = tool.execute(serde_json::json!({
[INFO] [stdout]     |              -----^^^^^^^ method not found in `EchoTool`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tools/traits.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn execute(&self, params: JsonValue) -> ToolResult;
[INFO] [stdout]     |        ------- the method is available for `EchoTool` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `Tool` which provides `execute` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 146 + use crate::chenyi_kernel::tools::Tool;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tools/builtins.rs - tools::builtins::TimeTool (line 22) stdout ----
[INFO] [stdout] error[E0599]: no method named `execute` found for struct `TimeTool` in the current scope
[INFO] [stdout]    --> src/tools/builtins.rs:29:19
[INFO] [stdout]     |
[INFO] [stdout]  29 | let result = tool.execute(serde_json::json!({
[INFO] [stdout]     |              -----^^^^^^^ method not found in `TimeTool`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tools/traits.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn execute(&self, params: JsonValue) -> ToolResult;
[INFO] [stdout]     |        ------- the method is available for `TimeTool` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `Tool` which provides `execute` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]  21 + use crate::chenyi_kernel::tools::Tool;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `execute` found for struct `TimeTool` in the current scope
[INFO] [stdout]    --> src/tools/builtins.rs:34:19
[INFO] [stdout]     |
[INFO] [stdout]  34 | let result = tool.execute(serde_json::json!({
[INFO] [stdout]     |              -----^^^^^^^ method not found in `TimeTool`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tools/traits.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn execute(&self, params: JsonValue) -> ToolResult;
[INFO] [stdout]     |        ------- the method is available for `TimeTool` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `Tool` which provides `execute` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]  21 + use crate::chenyi_kernel::tools::Tool;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tools/executor.rs - tools::executor::ToolExecutor (line 132) stdout ----
[INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks
[INFO] [stdout]    --> src/tools/executor.rs:143:80
[INFO] [stdout]     |
[INFO] [stdout] 133 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_tools_executor_rs_132_0() {
[INFO] [stdout]     |                                      ---------------------------------------------- this is not `async`
[INFO] [stdout] ...
[INFO] [stdout] 143 | let result = executor.execute("my_tool", serde_json::json!({"input": "test"})).await?;
[INFO] [stdout]     |                                                                                ^^^^^ only allowed inside `async` functions and blocks
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0728`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tools/mod.rs - tools (line 11) stdout ----
[INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks
[INFO] [stdout]   --> src/tools/mod.rs:27:62
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_tools_mod_rs_11_0() {
[INFO] [stdout]    |                                      ---------------------------------------- this is not `async`
[INFO] [stdout] ...
[INFO] [stdout] 27 | let result = executor.execute("time", serde_json::json!({})).await?;
[INFO] [stdout]    |                                                              ^^^^^ only allowed inside `async` functions and blocks
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0728`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tools/builtins.rs - tools::builtins::CalculatorTool (line 287) stdout ----
[INFO] [stdout] error[E0599]: no method named `execute` found for struct `CalculatorTool` in the current scope
[INFO] [stdout]    --> src/tools/builtins.rs:293:19
[INFO] [stdout]     |
[INFO] [stdout] 293 | let result = tool.execute(serde_json::json!({
[INFO] [stdout]     |              -----^^^^^^^ method not found in `CalculatorTool`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tools/traits.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn execute(&self, params: JsonValue) -> ToolResult;
[INFO] [stdout]     |        ------- the method is available for `CalculatorTool` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `Tool` which provides `execute` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 286 + use crate::chenyi_kernel::tools::Tool;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tools/registry.rs - tools::registry::ToolRegistry (line 20) stdout ----
[INFO] [stdout] error[E0433]: cannot find type `MyTool` in this scope
[INFO] [stdout]   --> src/tools/registry.rs:28:28
[INFO] [stdout]    |
[INFO] [stdout] 28 | registry.register(Arc::new(MyTool::new()));
[INFO] [stdout]    |                            ^^^^^^ use of undeclared type `MyTool`
[INFO] [stdout]    |
[INFO] [stdout] help: a trait with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 28 - registry.register(Arc::new(MyTool::new()));
[INFO] [stdout] 28 + registry.register(Arc::new(Tool::new()));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/tools/registry.rs:32:53
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_tools_registry_rs_20_0() {
[INFO] [stdout]    |                                      --------------------------------------------- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout] ...
[INFO] [stdout] 32 |     let result = tool.execute(serde_json::json!({}))?;
[INFO] [stdout]    |                                                     ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding return type
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_tools_registry_rs_20_0() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |                                                                                    +++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/tools/builtins.rs - tools::builtins::CalculatorTool (line 287)
[INFO] [stdout]     src/tools/builtins.rs - tools::builtins::EchoTool (line 147)
[INFO] [stdout]     src/tools/builtins.rs - tools::builtins::TimeTool (line 22)
[INFO] [stdout]     src/tools/executor.rs - tools::executor::ToolExecutor (line 132)
[INFO] [stdout]     src/tools/mod.rs - tools (line 11)
[INFO] [stdout]     src/tools/registry.rs - tools::registry::ToolRegistry (line 20)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2 passed; 6 failed; 3 ignored; 0 measured; 0 filtered out; finished in 1.16s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "54910b31a28060eca2abd72c6e8ac187910f2b7cca1d8f0bc5c13f8bb59442d4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "54910b31a28060eca2abd72c6e8ac187910f2b7cca1d8f0bc5c13f8bb59442d4", kill_on_drop: false }`
[INFO] [stdout] 54910b31a28060eca2abd72c6e8ac187910f2b7cca1d8f0bc5c13f8bb59442d4
